home *** CD-ROM | disk | FTP | other *** search
/ ShareWare OnLine 2 / ShareWare OnLine Volume 2 (CMS Software)(1993).iso / os2 / elvis172.zip / config.h < prev    next >
C/C++ Source or Header  |  1993-03-28  |  16KB  |  652 lines

  1. /*
  2.  * vi configuration file
  3.  * We try to automatically configure to various compilers and operating
  4.  * systems. Extend the autoconf section as needed.
  5.  */
  6.  
  7. #ifndef _CONFIG_H
  8. # define _CONFIG_H
  9.  
  10. /*************************** autoconf section ************************/
  11.  
  12. /* Commodore-Amiga */
  13. #ifdef    amiga
  14. # define AMIGA        1
  15. # define COMPILED_BY    "Manx Aztec C 5.2b"
  16. # define TINYSTACK    1
  17. #endif
  18.  
  19. /* standard unix V (?) */
  20. #ifdef    M_SYSV
  21. # define UNIXV        1
  22. # ifdef M_XENIX
  23. #  ifndef M_I386
  24. #   define TINYSTACK    1
  25. #  endif
  26. # endif
  27. # undef COHERENT
  28. #endif
  29.  
  30. /* xelos system, University of Ulm */
  31. #ifdef    xelos
  32. # define UNIXV        1
  33. #endif
  34.  
  35. /* BSD UNIX? */
  36. #ifdef bsd
  37. # define BSD        1
  38. #else
  39. # ifdef sun
  40. #  ifndef M_SYSV
  41. #   define BSD        1
  42. #  endif
  43. # endif
  44. #endif
  45.  
  46. /* Microsoft C: sorry, Watcom does the same thing */
  47. #ifdef    M_I86
  48. # ifndef M_SYSV
  49. #  define MSDOS        1
  50. #  ifdef IBMC2
  51. #   define COMPILED_BY    "IBM C/2 1.00"
  52. #  else
  53. #   define MICROSOFT    1
  54. #   define COMPILED_BY    "Microsoft C 5.10"
  55. #  endif
  56. #  define TINYSTACK    1
  57. # endif
  58. #endif
  59.  
  60. /* Borland's Turbo C */
  61. #ifdef    __TURBOC__
  62. # define MSDOS        1
  63. # define TURBOC        1
  64. # ifdef __BORLANDC__
  65. # define COMPILED_BY    "Borland C 2.00"
  66. # else
  67. # define COMPILED_BY    (__TURBOC__ >= 661 ? "Turbo C++ 1.00" : "Turbo C 2.00")
  68. # endif
  69. # define TINYSTACK    1
  70. #endif
  71.  
  72. /* Tos Mark-Williams */
  73. #ifdef    M68000
  74. # define TOS 1
  75. # define COMPILED_BY    "Mark Williams C"
  76. # define TINYSTACK    1
  77. #endif
  78.  
  79. /* Tos GNU-C */
  80. #ifdef __atarist__
  81. # ifdef __gem__
  82. #  define TOS 1
  83. #  define COMPILED_BY    "GNU-C " __VERSION__
  84. #  define TINYSTACK    1
  85. # endif
  86. #endif
  87.  
  88. /* OS9/68000 */
  89. #ifdef    OSK
  90. # define COMPILED_BY    "Microware C V2.3 Edition 40"
  91. # define TINYSTACK    1
  92. #endif
  93.  
  94. /* DEC Rainbow, running MS-DOS (handled by earlier MS-DOS tests) */
  95. /* (would need -DRAINBOW in CFLAGS to compile a Rainbow-compatible .EXE) */
  96.  
  97. #ifdef VMS
  98. # define COMPILED_BY    "VAX/VMS VAXC compiler"
  99. # undef VMS
  100. # define VMS 1
  101. #endif
  102.  
  103.  
  104. #ifdef COHERENT
  105. # ifdef _I386
  106. #  define COH_386 1
  107. #  define COH_286 0
  108. # else
  109. #  define COH_386 0
  110. #  define COH_286 1
  111. # endif
  112. # undef COHERENT
  113. # define COHERENT 1
  114. #endif
  115.  
  116. /*************************** end of autoconf section ************************/
  117.  
  118. /* All undefined symbols are defined to zero here, to allow for older    */
  119. /* compilers which dont understand #if defined() or #if UNDEFINED_SYMBOL */
  120.  
  121. /*************************** operating systems *****************************/
  122.  
  123. #ifndef    BSD
  124. # define BSD    0        /* UNIX - Berkeley 4.x */
  125. #endif
  126.  
  127. #ifndef    UNIXV
  128. # define UNIXV    0        /* UNIX - AT&T SYSV */
  129. #endif
  130.  
  131. #ifndef    UNIX7
  132. # define UNIX7    0        /* UNIX - version 7 */
  133. #endif
  134.  
  135. #ifndef    MSDOS
  136. # define MSDOS    0        /* PC        */
  137. #endif
  138.  
  139. #ifndef    TOS
  140. # define TOS    0        /* Atari ST    */
  141. #endif
  142.  
  143. #ifndef    AMIGA
  144. # define AMIGA    0        /* Commodore Amiga */
  145. #endif
  146.  
  147. #ifndef OSK
  148. # define OSK    0        /* OS-9 / 68k */
  149. #endif
  150.  
  151. #ifndef COHERENT
  152. # define COHERENT 0        /* Coherent */
  153. #endif
  154.  
  155. #ifndef RAINBOW            /* DEC Rainbow support, under MS-DOS */
  156. # define RAINBOW 0
  157. #endif
  158.  
  159. #ifndef VMS
  160. # define VMS 0                  /* VAX/VMS */
  161. #endif
  162.  
  163.                 /* Minix has no predefines */
  164. #if !BSD && !UNIXV && !UNIX7 && !MSDOS && !TOS && !AMIGA && !OSK && !COHERENT && !VMS && !OS2
  165. # define MINIX    1
  166. #else
  167. # define MINIX    0
  168. #endif
  169.  
  170.                 /* generic combination of Unices */
  171. #if UNIXV || UNIX7 || BSD || MINIX || COHERENT
  172. # define ANY_UNIX 1
  173. #else
  174. # define ANY_UNIX 0
  175. #endif
  176.  
  177. #ifndef TINYSTACK
  178. # define TINYSTACK 0
  179. #endif
  180.  
  181. /*************************** compilers **************************************/
  182.  
  183. #ifndef    AZTEC_C
  184. # define AZTEC_C    0
  185. #endif
  186.  
  187. #ifndef    MICROSOFT
  188. # define MICROSOFT    0
  189. #endif
  190.  
  191. #ifndef    TURBOC
  192. # define TURBOC        0
  193. #endif
  194.  
  195. /* Should we use "new style" ANSI C prototypes? */
  196. #ifdef __STDC__
  197. # define NEWSTYLE 1
  198. #endif
  199. #ifdef __cplusplus
  200. # define NEWSTYLE 1
  201. #endif
  202. #ifndef NEWSTYLE
  203. # define NEWSTYLE 0
  204. #endif
  205.  
  206. #if NEWSTYLE
  207. # define P_(s) s
  208. #else
  209. # define P_(s) ()
  210. #endif
  211.  
  212. /******************************* Credit ************************************/
  213.  
  214. #if MSDOS
  215. # define CREDIT "Ported to MS-DOS by Guntram Blohm & Martin Patzel"
  216. # if RAINBOW
  217. #  define CREDIT2 "Rainbow support added by Willett Kempton"
  218. # endif
  219. #endif
  220.  
  221. #if AMIGA
  222. # define CREDIT "Ported to AmigaDOS 2.04 by Mike Rieser & Dale Rahn"
  223. #endif
  224.  
  225. #if TOS
  226. # define CREDIT "Ported to Atari/TOS by Guntram Blohm & Martin Patzel"
  227. #endif
  228.  
  229. #if OSK
  230. # define CREDIT    "Ported to Microware OS9/68k by Peter Reinig"
  231. #endif
  232.  
  233. #if COHERENT
  234. # define CREDIT    "Ported to Coherent by Esa Ahola"
  235. #endif
  236.  
  237. #if VMS
  238. # define CREDIT "Ported to VAX/VMS by John Campbell"
  239. #endif
  240. /*************************** functions depending on OS *********************/
  241.  
  242. /* There are two terminal-related functions that we need: ttyread() and
  243.  * ttywrite().  The ttyread() function implements read-with-timeout and is
  244.  * a true function on all systems.  The ttywrite() function is almost always
  245.  * just a macro...
  246.  */
  247. #if !TOS && !AMIGA
  248. # define ttywrite(buf, len)    write(1, buf, (unsigned)(len))    /* raw write */
  249. #endif
  250.  
  251. /* The strchr() function is an official standard now, so everybody has it
  252.  * except Unix version 7 (which is old) and BSD Unix (which is academic).
  253.  * Those guys use something called index() to do the same thing.
  254.  */
  255. #if BSD || UNIX7 || OSK
  256. # define strchr    index
  257. # define strrchr rindex
  258. #endif
  259. #if !NEWSTYLE
  260. extern char *strchr();
  261. #endif
  262.  
  263. /* BSD uses bcopy() instead of memcpy() */
  264. #if BSD
  265. # define memcpy(dest, src, siz)    bcopy(src, dest, siz)
  266. #endif
  267.  
  268. /* BSD uses getwd() instead of getcwd().  The arguments are a little different,
  269.  * but we'll ignore that and hope for the best; adding arguments to the macro
  270.  * would mess up an "extern" declaration of the function.
  271.  *
  272.  * Also, the Coherent-286 uses getwd(), but Coherent-386 uses getcwd()
  273.  */
  274. #if BSD
  275. # define getcwd    getwd
  276. #endif
  277. #if COH_286
  278. # define getcwd getwd
  279. #endif
  280. extern char *getcwd();
  281.  
  282. /* text versa binary mode for read/write */
  283. #if !TOS
  284. #define    tread(fd,buf,n)        read(fd,buf,(unsigned)(n))
  285. #define twrite(fd,buf,n)    write(fd,buf,(unsigned)(n))
  286. #endif
  287.  
  288. /**************************** Compiler quirks *********************************/
  289.  
  290. /* the UNIX version 7 and (some) TOS compilers, don't allow "void" */
  291. #if UNIX7 || TOS
  292. # define void int
  293. #endif
  294.  
  295. /* as far as I know, all compilers except version 7 support unsigned char */
  296. /* NEWFLASH: the Minix-ST compiler has subtle problems with unsigned char */
  297. #if UNIX7 || MINIX
  298. # define UCHAR(c)    ((c) & 0xff)
  299. # define uchar        char
  300. #else
  301. # define UCHAR(c)    ((unsigned char)(c))
  302. # define uchar        unsigned char
  303. #endif
  304.  
  305. /* Some compilers prefer to have malloc declared as returning a (void *) */
  306. /* ANSI, on the other hand, needs the arguments to free() to be cast */
  307. #ifndef    __STDC__
  308. # if BSD || AMIGA || MINIX
  309. extern void *malloc();
  310. #  define _free_(ptr)    free((void *)ptr)
  311. # else
  312. extern char *malloc();
  313. #  define _free_(ptr)    free((char *)ptr)
  314. # endif
  315. #else
  316. # define _free_(ptr)    free((void *)ptr)
  317. #endif    /* __STDC__ */
  318.  
  319. /* everybody but Amiga wants lseek declared here */
  320. #if !AMIGA
  321. extern long lseek();
  322. #endif
  323.  
  324. /* ANSI C has getenv() declared in stdlib.h, which we've already included.
  325.  * Other compilers will need it declared here, though.
  326.  */
  327. #ifndef __STDC__
  328. extern char *getenv();
  329. #endif
  330.  
  331. /* Signal handler functions used to return an int value, which was ignored.
  332.  * On newer systems, signal handlers are void functions.  Here, we try to
  333.  * guess the proper return type for this system.
  334.  */
  335. #ifdef __STDC__
  336. # define SIGTYPE void
  337. #else
  338. # if MSDOS
  339. #  define SIGTYPE void
  340. # else
  341. #  if UNIXV
  342. #   define SIGTYPE void        /* Note: This is wrong for SCO Xenix. */
  343. #  endif
  344. # endif
  345. #endif
  346. #ifndef SIGTYPE
  347. # define SIGTYPE int
  348. #endif
  349.  
  350. /******************* Names of files and environment vars **********************/
  351.  
  352. #if ANY_UNIX
  353. # ifndef TMPDIR
  354. #  if MINIX
  355. #   define TMPDIR    "/usr/tmp"    /* Keep elvis' temp files off RAM disk! */
  356. #  else
  357. #   define TMPDIR    "/tmp"        /* directory where temp files live */
  358. #  endif
  359. # endif
  360. # ifndef PRSVDIR
  361. #  define PRSVDIR    "/usr/preserve"    /* directory where preserved file live */
  362. # endif
  363. # ifndef PRSVINDEX
  364. #  define PRSVINDEX    "/usr/preserve/Index" /* index of files in PRSVDIR */
  365. # endif
  366. # ifndef EXRC
  367. #  define EXRC        ".exrc"        /* init file in current directory */
  368. # endif
  369. # define SCRATCHOUT    "%s/soXXXXXX"    /* temp file used as input to filter */
  370. # ifndef SHELL
  371. #  define SHELL        "/bin/sh"    /* default shell */
  372. # endif
  373. # if COHERENT
  374. #  ifndef REDIRECT
  375. #   define REDIRECT    ">"        /* Coherent CC writes errors to stdout */
  376. #  endif
  377. # endif
  378. # define gethome(x)    getenv("HOME")
  379. #endif
  380.  
  381. #if AMIGA        /* Specify AMIGA environment */
  382. # ifndef CC_COMMAND
  383. #  define CC_COMMAND    "cc"        /* generic C compiler */
  384. # endif
  385. # ifndef COLON
  386. #  define COLON        ':'        /* Amiga files can also end in `:' */
  387. # endif
  388. # ifndef SYSEXRC
  389. #  define SYSEXRC    "S:" EXRC    /* name of ".exrc" file in system dir */
  390. # endif
  391. # ifndef MAXRCLEN
  392. #  define MAXRCLEN    2048        /* max size of a .exrc file */
  393. # endif
  394. # ifndef NBUFS
  395. #  define NBUFS        10        /* must be at least 3 -- more is better */
  396. # endif
  397. # ifndef NEEDSYNC
  398. #  define NEEDSYNC    TRUE        /* assume ":se sync" by default */
  399. # endif
  400. # ifndef PRSVDIR
  401. #  define PRSVDIR    "Elvis:"    /* directory where preserved file live */
  402. # endif
  403. # ifndef PRSVINDEX
  404. #  define PRSVINDEX    "Elvis:Index"    /* index of files in PRSVDIR */
  405. # endif
  406. # ifndef REDIRECT
  407. #  define REDIRECT    ">"        /* Amiga writes errors to stdout */
  408. # endif
  409. # ifndef SCRATCHIN
  410. #  define SCRATCHIN    "%sSIXXXXXX"
  411. # endif
  412. # ifndef SCRATCHOUT
  413. #  define SCRATCHOUT    "%sSOXXXXXX"
  414. # endif
  415. # ifndef SHELL
  416. #  define SHELL        "newshell"    /* default shell */
  417. # endif
  418. # ifndef TERMTYPE
  419. #  define TERMTYPE    "amiga"        /* default termtype */
  420. # endif
  421. # ifndef TMPDIR                /* for AMIGA should end in `:' or `/' */
  422. #  define TMPDIR    "T:"        /* directory where temp files live */
  423. # endif
  424. # ifndef TMPNAME
  425. #  define TMPNAME    "%selv_%x.%x"    /* format of names for temp files */
  426. # endif
  427. # define gethome(x)    getenv("HOME")
  428. #endif
  429.  
  430. #if MSDOS || TOS
  431. /* do not change TMPNAME and SCRATCH*: they MUST begin with '%s\\'! */
  432. # ifndef TMPDIR
  433. #  define TMPDIR    "C:\\tmp"    /* directory where temp files live */
  434. # endif
  435. # ifndef PRSVDIR
  436. #  define PRSVDIR    "C:\\preserve"    /* directory where preserved file live */
  437. # endif
  438. # ifndef PRSVINDEX
  439. #  define PRSVINDEX    "C:\\preserve\\Index" /* index of files in PRSVDIR */
  440. # endif
  441. # define TMPNAME    "%s\\elv_%x.%x" /* temp file */
  442. # if MSDOS
  443. #  if MICROSOFT
  444. #   define CC_COMMAND    "cl -c"        /* C compiler */
  445. #  else
  446. #   if __BORLANDC__  /* Borland C */
  447. #    define CC_COMMAND    "bcc"        /* C compiler */
  448. #   else
  449. #   if TURBOC        /* Turbo C */
  450. #    define CC_COMMAND    "tcc"        /* C compiler */
  451. #   endif    /* TURBOC */
  452. #   endif    /* BORLANDC */
  453. #  endif        /* MICROSOFT */
  454. # endif        /* MSDOS */
  455. # define SCRATCHIN    "%s\\siXXXXXX"    /* DOS ONLY - output of filter program */
  456. # define SCRATCHOUT    "%s\\soXXXXXX"    /* temp file used as input to filter */
  457. # define SLASH        '\\'
  458. # ifndef SHELL
  459. #  if TOS
  460. #   define SHELL    "shell.ttp"    /* default shell */
  461. #  else
  462. #   define SHELL    "command.com"    /* default shell */
  463. #  endif
  464. # endif
  465. # define NEEDSYNC    TRUE        /* assume ":se sync" by default */
  466. # if TOS && __GNUC__            /* probably on other systems, too */
  467. #  define REDIRECT    "2>"        /* GNUC reports on 2, others on 1 */
  468. #  define CC_COMMAND    "gcc -c"
  469. # else
  470. #  define REDIRECT    ">"        /* shell's redirection of stderr */
  471. # endif
  472. #endif
  473.  
  474. #if OS2
  475. /* do not change TMPNAME and SCRATCH*: they MUST begin with '%s\\'! */
  476. # ifndef TMPDIR
  477. #  define TMPDIR    "C:"    /* directory where temp files live */
  478. # endif
  479. # ifndef PRSVDIR
  480. #  define PRSVDIR    "C:\\preserve"    /* directory where preserved file live */
  481. # endif
  482. # ifndef PRSVINDEX
  483. #  define PRSVINDEX    "C:\\preserve\\Index" /* index of files in PRSVDIR */
  484. # endif
  485. # define TMPNAME    "%s\\elv_%x.%x" /* temp file */
  486. # define SCRATCHOUT    "%s\\soXXXXXX"    /* temp file used as input to filter */
  487. # define CC_COMMAND    "gcc -c"    /* C compiler */
  488. # define SLASH        '\\'
  489. # define SHELL        "cmd.exe"    /* default shell */
  490. # define NEEDSYNC    TRUE        /* assume ":se sync" by default */
  491. # define REDIRECT    "2>"
  492. #endif
  493.  
  494. #if VMS
  495. /* do not change TMPNAME, and SCRATCH*: they MUST begin with '%s\\'! */
  496. # ifndef TMPDIR
  497. #  define TMPDIR        "sys$scratch:"  /* directory where temp files live */
  498. # endif
  499. # define TMPNAME        "%selv_%x.%x;1" /* temp file */
  500. # define SCRATCHIN      "%ssiXXXXXX"    /* DOS ONLY - output of filter program */
  501. # define SCRATCHOUT     "%ssoXXXXXX"    /* temp file used as input to filter */
  502. # define SLASH          '\:'  /* Worry point... jdc */
  503. # ifndef SHELL
  504. #   define SHELL        ""      /* default shell */
  505. # endif
  506. # define REDIRECT       ">"             /* shell's redirection of stderr */
  507. # define tread(fd,buf,n)  vms_read(fd,buf,(unsigned)(n))
  508. # define close vms_close
  509. # define lseek vms_lseek
  510. # define unlink vms_delete
  511. # define delete __delete   /* local routine conflicts w/VMS rtl routine. */
  512. # define rpipe vms_rpipe
  513. # define rpclose vms_rpclose
  514. # define ttyread vms_ttyread
  515. # define gethome(x) getenv("HOME")
  516. /* There is no sync() on vms */
  517. # define sync()
  518. /* jdc -- seems VMS external symbols are case insensitive */
  519. # define m_fWord m_fw_ord
  520. # define m_bWord m_bw_ord
  521. # define m_eWord m_ew_ord
  522. # define m_Nsrch m_n_srch
  523. # define m_Fch   m_f_ch
  524. # define m_Tch   m_t_ch
  525. # define v_Xchar v_x_char
  526. /* jdc -- also, braindead vms curses always found by linker. */
  527. # define LINES elvis_LINES
  528. # define COLS  elvis_COLS
  529. # define curscr elvis_curscr
  530. # define stdscr elvis_stdscr
  531. # define initscr elvis_initscr
  532. # define endwin  elvis_endwin
  533. # define wrefresh elvis_wrefresh
  534. #endif
  535.  
  536. #if OSK
  537. # ifndef TMPDIR
  538. #  define TMPDIR    "/dd/tmp"       /* directory where temp files live */
  539. # endif
  540. # ifndef PRSVDIR
  541. #  define PRSVDIR    "/dd/usr/preserve" /* directory where preserved file live */
  542. # endif
  543. # ifndef PRSVINDEX
  544. #  define PRSVINDEX    "/dd/usr/preserve/Index" /* index of files in PRSVDIR */
  545. # endif
  546. # ifndef CC_COMMAND
  547. #  define CC_COMMAND    "cc -r"           /* name of the compiler */
  548. # endif
  549. # ifndef EXRC
  550. #  define EXRC        ".exrc"           /* init file in current directory */
  551. # endif
  552. # define SCRATCHOUT    "%s/soXXXXXX"       /* temp file used as input to filter */
  553. # ifndef SHELL
  554. #  define SHELL        "shell"           /* default shell */
  555. # endif
  556. # define FILEPERMS    (S_IREAD|S_IWRITE) /* file permissions used for creat() */
  557. # define REDIRECT    ">>-"           /* shell's redirection of stderr */
  558. # define sync()                   /* OS9 doesn't need a sync() */
  559. # define gethome(x)    getenv("HOME")
  560. #endif
  561.  
  562. #ifndef    TAGS
  563. # define TAGS        "tags"        /* name of the tags file */
  564. #endif
  565.  
  566. #ifndef TMPNAME
  567. # define TMPNAME    "%s/elv_%x.%x"    /* format of names for temp files */
  568. #endif
  569.  
  570. #ifndef EXINIT
  571. # define EXINIT        "EXINIT"    /* name of EXINIT environment variable */
  572. #endif
  573.  
  574. #ifndef    EXRC
  575. # define EXRC        "elvis.rc"    /* name of ".exrc" file in current dir */
  576. #endif
  577.  
  578. #ifndef HMEXRC
  579. # define HMEXRC        EXRC        /* name of ".exrc" file in home dir */
  580. #endif
  581.  
  582. #ifndef    KEYWORDPRG
  583. # define KEYWORDPRG    "ref"
  584. #endif
  585.  
  586. #ifndef    SCRATCHOUT
  587. # define SCRATCHIN    "%s/SIXXXXXX"
  588. # define SCRATCHOUT    "%s/SOXXXXXX"
  589. #endif
  590.  
  591. #ifndef ERRLIST
  592. # define ERRLIST    "errlist"
  593. #endif
  594.  
  595. #ifndef    SLASH
  596. # define SLASH        '/'
  597. #endif
  598.  
  599. #ifndef SHELL
  600. # define SHELL        "shell"
  601. #endif
  602.  
  603. #ifndef REG
  604. # define REG        register
  605. #endif
  606.  
  607. #ifndef NEEDSYNC
  608. # define NEEDSYNC    FALSE
  609. #endif
  610.  
  611. #ifndef FILEPERMS
  612. # define FILEPERMS    0666
  613. #endif
  614.  
  615. #ifndef PRESERVE
  616. # define PRESERVE    "elvprsv"    /* name of the "preserve" program */
  617. #endif
  618.  
  619. #ifndef CC_COMMAND
  620. # define CC_COMMAND    "cc -c"
  621. #endif
  622.  
  623. #ifndef MAKE_COMMAND
  624. # define MAKE_COMMAND    "make"
  625. #endif
  626.  
  627. #ifndef REDIRECT
  628. # define REDIRECT    "2>"
  629. #endif
  630.  
  631. #ifndef BLKSIZE
  632. # ifdef CRUNCH
  633. #  define BLKSIZE    1024
  634. # else
  635. #  define BLKSIZE    2048
  636. # endif
  637. #endif
  638.  
  639. #ifndef KEYBUFSIZE
  640. # define KEYBUFSIZE    1000
  641. #endif
  642.  
  643. #ifndef MAILER
  644. # define MAILER        "mail"
  645. #endif
  646.  
  647. #ifndef gethome
  648. extern char *gethome();
  649. #endif
  650.  
  651. #endif  /* ndef _CONFIG_H */
  652.